/**
 * Created by Administrator on 2017/9/21 0021.
 */
/**
 * 说明：
 * 1、根路由（一级）自动跳转主页面，其它路由（二级开始）必须在根路由（一级）之下
 * 2、同级路由只能有一个视图生效，其它任何视图接受点会被清空 router-view
 * 3、分包具名视图  components:{test:resolve=>require(["../test/test.vue"],resolve)}
 * 4、动态路由 router.push({ path:'',params:''})，path与params同在时后着不会生效， 需用具名路由name与params组合
 * 5、params 必须要在routes中定义 /:key , query会自动加载在url后缀,params应通过变量再包对象（url地址才有显示路径）
 * 6、为了实现缓存务必将所有组件都设置name属性和router的name保持一致不然不会缓存页面
 */
import Vue from 'vue';
import Router from 'vue-router';
import layOut from '@/components/layout/layout.vue';

import test from '@/router/test'; // 测试页面
import boFromComponent from '@/router/bo-from-component'; // 自定义form表单
import customMVVMFrameworke from '@/router/custom-mvvm-frameworke'; // 自定义form表单

Vue.use(Router);

// 公共的路由
export const commonRouters = [
  { path: '/', redirect: '/welcome' }, // 设置首页路由
  {
    path: '',
    component: layOut,
    redirect: 'welcome',
    children: [
      {
        path: 'welcome',
        name: 'welcome',
        component: resolve => require(['@/views/common/welcome'], resolve),
        meta: {
          label: '主页', // 标题
          icon: '', // 图标
          cache: true, // 是否缓存
          closable: false, // 是否标签可关闭
          key: '主页',
          routerPath: '/welcome'
        }
      }
    ]
  },
  {
    path: '/403', // 无权限页面
    component: resolve => require(['@/views/common/errorPages/403'], resolve)
  },
  {
    path: '/404', // 404页面
    component: resolve => require(['@/views/common/errorPages/404'], resolve)
  },
  {
    path: '/500', // 服务器错误
    component: resolve => require(['@/views/common/errorPages/500'], resolve)
  }
];

// 页面路由
export const pageRouter = [
  test,
  boFromComponent,
  customMVVMFrameworke
];

export default new Router({
  routes: [
    ...commonRouters,
    ...pageRouter,
    {
      path: '*',
      component: resolve => require(['@/views/common/errorPages/404.vue'], resolve)
    }
  ]
});
